CC = gcc
AS = nasm
CFLAGS = -Wall -g
ASFLAGS = -t -g -f coff
OBJS_CC = video-graphics.o sprite.o ints.o timer.o queue.o kbc.o rtc.o music.o GQueue.o gameDesign.o song.o stack.o pixmap.o
OBJS_AS = kbd_isr.o isr.o
EXTRAH = utypes.h 
LIBS = -llcom
OUTFILE = trap_em_all.exe

all: $(OUTFILE)

$(OUTFILE): main.c $(EXTRAH) liblcom.a
	@echo A linkar todos os ficheiros...
	@$(CC) $(CFLAGS) main.c $(EXTRAH) -L. $(LIBS) -o $(OUTFILE)
	@echo Projecto pronto e pode ser agora executado!

%.o: %.c %.h
	@echo A compilar o ficheiro: $<
	@$(CC) $(CFLAGS) -c $<
	@echo Ficheiro Compilado

%.o: %.asm
	@echo A compilar o ficheiro: $<
	@$(AS) $(ASFLAGS) $<
	@echo Ficheiro Compilado
	
liblcom.a: $(OBJS_CC) $(OBJS_AS)
	@echo A criar a biblioteca
	@ar -cr liblcom.a $(OBJS_CC) $(OBJS_AS)
	@echo Biblioteca criada

clean:
	@echo A limpar projecto....
	@rm -rf $(OBJS_CC) $(OBJS_AS) $(OUTFILE) liblcom.a
	@echo Projecto Limpo

rebuild: clean all
